<?
class UserAddForm extends Form{
	private $show_form=true;
	function UserAddForm()
	{
		Form::Form('UserAddForm');
		$this->link_js('javascript/ajax.js');
		$this->link_js('javascript/jquery/packed/jquery.validate.js');	
	}
	
	function on_submit()
	{
		$full_name 			= Url::get('full_name');
		$email 				= Url::get('email');
		$user_name 			= Url::get('register_user_name');
		$mobile_phone 		= AZLib::trimSpace(Url::get('mobile_phone'));
		$home_phone 		= AZLib::trimSpace(Url::get('home_phone'));
		
		$password 			= AZLib::trimSpace(Url::get('register_password'));
		$confirm_password 	= AZLib::trimSpace(Url::get('confirm_password'));
		$gender 			= (int)Url::get('gender');
		$yahoo_id 			=  AZLib::trimSpace(Url::get('yahoo_id'));
		$skype_id 			=  AZLib::trimSpace(Url::get('skype_id'));
		$address 			=  AZLib::trimSpace(Url::get('address'));
		$website 			=  AZLib::trimSpace(Url::get('website'));
		
		$this->checkFormInput('Tên đầy đủ','full_name',$full_name,'str',false,'',0,50);	
		$this->checkFormInput('Email','email',$email,'email',true,'',6,50);	
		$this->checkFormInput('Tên truy cập','user_name',$user_name,'uname',true,'',4,50);	
		$this->checkFormInput('Điện thoại di động','mobile_phone',$mobile_phone,'str',false,'',0,50);	
		$this->checkFormInput('Điện thoại bàn','home_phone',$home_phone,'str',false,'',0,50);	
		
		$this->checkFormInput('Mật khẩu truy cập','register_password',$password,'str',true,'',6,50);	
		$this->checkFormInput('Nhập lại mật khẩu','confirm_password',$confirm_password,'str',true,'',6,50);	
		
		if($password!=$confirm_password){
			$this->setFormError('confirm_password',"Nhập lại Mật khẩu truy cập không khớp!");
			return;
		}	
		
		if($mobile_phone && !AZLib::is_mobile($mobile_phone)){
			$mobile_phone = "";
		}
		
		if(!$this->errNum){
			if(DB::exists('SELECT id FROM `user` WHERE `email`="'.$email.'"')){
				$this->setFormError('email',"<b>Email</b> bạn chọn đã tồn tại, hãy chọn lại một <b>Email</b> khác!");
			}
			elseif(DB::exists('SELECT id FROM `user` WHERE `user_name`="'.$user_name.'"')){
				$this->setFormError('email',"<b>Tên truy cập</b> bạn chọn đã tồn tại, hãy chọn lại một <b>Tên truy cập</b> khác!");
			}
			else{	
				$user_info = array(	
											'user_name'		=>$user_name,
											'email'			=>$email,
											'password'		=>User::encode_password($password),
											'full_name'		=>$full_name,
											'mobile_phone'	=>$mobile_phone,
											'home_phone'	=>$home_phone,
											'create_time'	=>TIME_NOW,
											'gender'		=>($gender == 1?0:1),
											'yahoo_id'		=>$yahoo_id,
											'skype_id'		=>$skype_id,
											'address'		=>$address,
											'website'		=>$website,
											'is_active'		=>(int)(bool)USER_ACTIVE_ON,
											'reg_ip'		=>AZLib::ip());
											
				$id= DB::insert('user', $user_info);
				
				if($id)
				{
					if(USER_ACTIVE_ON && $user_info['is_active']==1)
					{
						global $display;
						$active=DB::select('user_active','user_id='.$id);
						$active_code		= md5(TIME_NOW.$user_info['password']);
						if($active){
							$active=array(
											'id'		 =>$active['id'],
											'user_id'	 =>$id,
											'active_code'=>$active_code,
											'time'		 =>TIME_NOW,
											);
						}
						else{
							$active=array(
											'user_id'	 =>$id,
											'active_code'=>$active_code,
											'time'		 =>TIME_NOW,
											);
						}
						DB::insert('user_active',$active,true);
						
						$display->add('eb_url',WEB_ROOT);
						$display->add('user_id',$id);
						$display->add('user_name',$user_info['user_name']);
						$display->add('active_code',$active_code);
						$content_email=$display->output('send_active_mail',1,'RegisterSuccess');
						
						//Send email here;
						if(System::sendEBEmail($user_info['email'],'Kích hoạt tài khoản!',$content_email))
						{
							Url::redirect_current();
						}
						else{
							$this->setFormError('','<b>Tạo mới tài khoản thành công!</b><br /><br />Tuy nhiên hệ thống chưa gửi được Mã kích hoạt tới E-mail: "'.$user_info['email'].'"!');
						}
						$this->show_form=false;
					}
					else{
						Url::redirect_current();
					}
				}
				else {
					$this->setFormError('',"Chưa đăng ký được, mời bạn thử lại!");
				}
			}
		}
	}
	
	function draw(){
		global $display;	
		$this->beginForm();
		
		$display->add('msg_register',$this->showFormErrorMessages(1));			
		$display->add('msg_success',$this->showFormSuccesMessages(1));		
		$display->add('show_form',$this->show_form);		
				
		$display->add('error_full_name',	Url::get('full_name'));
		$display->add('error_email',		Url::get('email'));
		$display->add('error_user_name',	Url::get('register_user_name'));
		$display->add('error_mobile_phone',	Url::get('mobile_phone'));
		$display->add('error_home_phone',	Url::get('home_phone'));
		$display->add('register_password',	Url::get('register_password'));
		$display->add('confirm_password',	Url::get('confirm_password'));
		
		$display->add('error_gender',		(int)Url::get('gender'));
		$display->add('error_yahoo_id',		Url::get('yahoo_id'));
		$display->add('error_skype_id',		Url::get('skype_id'));
		$display->add('error_address',		Url::get('address'));
		$display->add('error_website',		Url::get('website'));
		
		$display->output('Add');	
		$this->endForm();		
	}
}
?>
